const cloud = require("wx-server-sdk");

cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV,
});

const db = cloud.database();

// 云函数入口函数
exports.main = async () => {

  const wxContext = cloud.getWXContext();
  const openid = wxContext.OPENID;

  // 查询用户是否存在
  const users = db.collection("users");
  const { data } = await users
    .where({
      openid: openid,
    })
    .get();

  let userRecord = null;
  if (data.length > 0) {
    // 用户已存在，更新用户信息
    userRecord = data[0];
    userRecord = userRecord.data;
  } else {
    // 用户不存在，创建新用户
    const newUser = {
      openid: openid,
      nickName: '',
      avatarUrl: 'https://tdesign.gtimg.com/miniprogram/template/retail/usercenter/icon-user-center-avatar@2x.png', // 默认头像
      createTime: db.serverDate(), // 服务器时间
    };
    const res = await users.add({
      data: newUser,
    });
    // 获取创建后的用户记录
    userRecord = await users.doc(res._id).get();
    userRecord = userRecord.data;
  }

  // 注意：不要返回openid和session_key等敏感信息
  // 我们只返回必要的用户信息
  return {
    ...userRecord,
    openid: undefined, // 不返回openid
  };
};
